\section{zip}
zip命令可以用来解压缩文件，或者对文件进行打包操作。zip是个使用广泛的压缩程序，文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。

\textbf{语法}
zip(选项)(参数)

选项
\begin{itemize}
\item -A：调整可执行的自动解压缩文件；
\item -b<工作目录>：指定暂时存放文件的目录；
\item -c：替每个被压缩的文件加上注释；
\item -d：从压缩文件内删除指定的文件；
\item -D：压缩文件内不建立目录名称；
\item -f：此参数的效果和指定“-u”参数类似，但不仅更新既有文件，如果某些文件原本不存在于压缩文件内，使用本参数会一并将其加入压缩文件中；
\item -F：尝试修复已损坏的压缩文件；
\item -g：将文件压缩后附加在已有的压缩文件之后，而非另行建立新的压缩文件；
\item -h：在线帮助；
\item -i<范本样式>：只压缩符合条件的文件；
\item -j：只保存文件名称及其内容，而不存放任何目录名称；
\item -J：删除压缩文件前面不必要的数据；
\item -k：使用MS-DOS兼容格式的文件名称；
\item -l：压缩文件时，把LF字符置换成LF+CR字符；
\item -ll：压缩文件时，把LF+cp字符置换成LF字符；
\item -L：显示版权信息；
\item -m：将文件压缩并加入压缩文件后，删除原始文件，即把文件移到压缩文件中；
\item -n<字尾字符串>：不压缩具有特定字尾字符串的文件；
\item -o：以压缩文件内拥有最新更改时间的文件为准，将压缩文件的更改时间设成和该文件相同；
\item -q：不显示指令执行过程；
\item -r：递归处理，将指定目录下的所有文件和子目录一并处理；
\item -S：包含系统和隐藏文件；
\item -t<日期时间>：把压缩文件的日期设成指定的日期；
\item -T：检查备份文件内的每个文件是否正确无误；
\item -u：更换较新的文件到压缩文件内；
\item -v：显示指令执行过程或显示版本信息；
\item -V：保存VMS操作系统的文件属性；
\item -w：在文件名称里假如版本编号，本参数仅在VMS操作系统下有效；
\item -x<范本样式>：压缩时排除符合条件的文件；
\item -X：不保存额外的文件属性；
\item -y：直接保存符号连接，而非该链接所指向的文件，本参数仅在UNIX之类的系统下有效；
\item -z：替压缩文件加上注释；
\item -\$：保存第一个被压缩文件所在磁盘的卷册名称；
\item -<压缩效率>：压缩效率是一个介于1-9的数值。G
\end{itemize}
\textbf{例子}\\
文件结构为当前目录有test1,test2,test3文件和tmp目录。
\begin{itemize}
    \item 创建临时目录存放文件同时压缩当前目录中所有文件为test.zip。\\
\bashinline{zip -b ./tmp -r test.zip *}(必须存在tmp临时目录)。
    \item 压缩本地的test1,test2,test3文件同时注释每个文件是干什么用的。\\
\bashinline{zip -b ./tmp -r -c test.zip test*}
输出如下：
\begin{bash}
updating: test1 (stored 0%) 
updating: test2 (stored 0%) 
updating: test3 (stored 0%) 
Enter comment for test1:    
comment test1     
Enter comment for test2:    
comment test2     
Enter comment for test3:    
comment test3     
\end{bash}
\item 从test.zip文件中删除test1文件。\\
\bashinline{zip  test.zip  -d test1}
\item 将文件压缩后添加到压缩文件之后，同时本地保存这个文件的压缩文件。\\
\bashinline{zip -g tmp test.zip}
\item 压缩文件为test.zip，添加新文件hello到压缩文件，压缩完成后删除本地源文件hello。\\
\bashinline{zip test.zip hello -m}
\item 更新文件test2后，将文件添加到原先的test.zip文件中替换所有的内容为test\\ \bashinline{zip test.zip -u test2}

\end{itemize}

